package com.murilo.atividade.view;

import javax.swing.JFrame;
import javax.swing.JPanel;

import java.awt.BorderLayout;
import java.awt.Color;

import javax.swing.JTabbedPane;
import javax.swing.JLabel;

import java.awt.GridBagLayout;
import java.awt.GridBagConstraints;
import java.awt.Insets;

import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.table.DefaultTableModel;

import com.murilo.atividade.dao.ContasDao;
import com.murilo.atividade.dao.PessoaDao;
import com.murilo.atividade.model.Contas;



import com.murilo.atividade.model.Pessoa;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class ContasProjetoGui extends JFrame {
	private JTextField texVlConta;
	private JTextField texvlPrestacao;
	private JTextField texqtdPrestacao;
	private JTextField texConta;
	private DefaultTableModel modelo;
	private int linhaSelecionada;
	
	/**
	 * @wbp.parser.constructor
	 */
	public ContasProjetoGui(int cdpessoa, String nomePessoa) {
		setTitle("Contas");
		setSize(450,288);
		JPanel panel = new JPanel();
		panel.setBackground(Color.WHITE);
		getContentPane().add(panel, BorderLayout.CENTER);
		panel.setLayout(null);
		
		JLabel lblNome = new JLabel("Valor da Conta:");
		lblNome.setBounds(20, 35, 89, 14);
		panel.add(lblNome);
		
		JLabel lblTelefone = new JLabel("Valor da Prestacao: ");
		lblTelefone.setBounds(20, 84, 97, 14);
		panel.add(lblTelefone);
		
		JLabel lblCpf = new JLabel("Quantidade de Prestacoes: ");
		lblCpf.setBounds(20, 133, 143, 14);
		panel.add(lblCpf);
		
		texVlConta = new JTextField();
		texVlConta.setBounds(158, 30, 129, 20);
		panel.add(texVlConta);
		texVlConta.setColumns(10);
		
		texvlPrestacao = new JTextField();
		texvlPrestacao.setColumns(10);
		texvlPrestacao.setBounds(158, 81, 129, 20);
		panel.add(texvlPrestacao);
		
		texqtdPrestacao = new JTextField();
		texqtdPrestacao.setColumns(10);
		texqtdPrestacao.setBounds(158, 130, 97, 20);
		panel.add(texqtdPrestacao);
		
		JButton btnListar = new JButton("Listar");
		btnListar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				ListaContasGui gui = new ListaContasGui(cdpessoa, nomePessoa);
				dispose();
				gui.setVisible(true);
			}
		});
		btnListar.setBounds(328, 29, 89, 23);
		panel.add(btnListar);
		
		JButton btnSalvar = new JButton("Salvar");
		btnSalvar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
									
					Contas conta = new Contas();
					conta.setVlConta(Double.parseDouble(texVlConta.getText()));
					conta.setVlPrestacao(Double.parseDouble(texvlPrestacao.getText()));
					conta.setQtdPrestacoes(Integer.parseInt(texqtdPrestacao.getText()));
					conta.setCdPessoa(cdpessoa);
					ContasDao dao = new ContasDao();
				   if(!texConta.getText().trim().equals("") || texConta.getText() == null){
				    	conta.setCdConta(Integer.parseInt(texConta.getText()));
						dao.editar(conta);
						modelo.removeRow(linhaSelecionada);
						modelo.addRow(new Object[] {conta.getCdConta(), conta.getVlConta(),conta.getVlPrestacao(),conta.getQtdPrestacoes()});
					 	dispose();
					}else{
						dao.inserir(conta);		
					}
				
			}
		});
		btnSalvar.setBounds(328, 80, 89, 23);
		panel.add(btnSalvar);
		
		JLabel lbDevedor = new JLabel("Usu\u00E1rio:");
		lbDevedor.setBounds(20, 210, 48, 14);
		panel.add(lbDevedor);
		
		JLabel resultadoMeses = new JLabel(nomePessoa);
		resultadoMeses.setBounds(81, 210, 82, 14);
		panel.add(resultadoMeses);
		
		JLabel lblIdDaConta = new JLabel("ID da Conta: ");
		lblIdDaConta.setBounds(20, 182, 104, 14);
		panel.add(lblIdDaConta);
		
		texConta = new JTextField();
		texConta.setEditable(false);
		texConta.setColumns(10);
		texConta.setBounds(158, 179, 97, 20);
		panel.add(texConta);
	}
	
	public ContasProjetoGui(int cdpessoa, int codconta,String nomePessoa, DefaultTableModel modelo,int linhaSelecionada) {
		this(cdpessoa,nomePessoa);
		this.modelo = modelo;
		this.linhaSelecionada = linhaSelecionada;
		ContasDao dao = new ContasDao();
		Contas conta = dao.listarId(cdpessoa,codconta);
		texVlConta.setText(String.valueOf(conta.getVlConta()));
		texvlPrestacao.setText(String.valueOf(conta.getVlPrestacao()));
		texqtdPrestacao.setText(String.valueOf(conta.getQtdPrestacoes()));
		texConta.setText(String.valueOf(conta.getCdConta()));
	}
}
